<?php

//by ralvear 2013-08-09
//modificado ralvear 2013-09-01
abstract class Controlador{
	protected $_vista;

	public function __construct(){
		$this->_vista = new Vista( new Peticion );
	}

	abstract public function index ();

	protected function cargarModelo( $modelo ){
		$modelo = $modelo . "Modelo";
		$rutaModelo = RUTA . "modelo" . BNVA . $modelo . ".php";

		if( is_readable($rutaModelo) ){
			require_once ( $rutaModelo );
			$modelo = new $modelo;
			return $modelo;
		}else{
			throw new Exception( "Error: Modelo no encontrado..." );
		}

	}

	protected function cargarLibreria( $libreria ){
		$rutaLibreria = RUTA . "lib" . BNVA . $libreria . ".php";

		if( is_readable($rutaLibreria) ){
			require_once ( $rutaLibreria );
		}else{
			throw new Exception( "Error: Libreria no encontrado..." );
		}

	}

	protected function redireccionar( $ruta = false ){
		( $ruta )? header( "location:" . BASE_URL . $ruta ) : header( "location:" . BASE_URL );
	}

	protected function obtenerVcadena( $clave ){

		if( isset( $_POST[ $clave ] ) && !empty( $_POST[ $clave ] ) ){
			$_POST[ $clave ] = htmlspecialchars( $_POST[ $clave ], ENT_QUOTES );
			return $_POST[ $clave ];
		} else if( isset( $_GET[ $clave ] ) && !empty( $_GET[ $clave ] ) ){
			$_GET[ $clave ] = htmlspecialchars( $_GET[ $clave ], ENT_QUOTES );
			return $_GET[ $clave ];
		}

		return "";

	}

	protected function obtenerVentero( $clave )
	{

		if( isset( $_POST[ $clave ] ) && !empty( $_POST[ $clave ] ) ){
			$_POST[ $clave ] = 
			filter_input(INPUT_POST, $clave, FILTER_VALIDATE_INT);
			return $_POST[ $clave ];
		} else if( isset( $_GET[ $clave ] ) && !empty( $_GET[ $clave ] ) ){
			$_GET[ $clave ] = htmlspecialchars( $_GET[ $clave ], ENT_QUOTES );
			return $_GET[ $clave ];
		}

		return 0;

	}

	protected function filtrarEntero( $entero )
	{
		$entero = (int) $entero;

		if( is_int( $entero ) ){
			return $entero;

		}else{
			return 0;
		}

	}
}
?>